#include "02_Socket.hpp"
#include <stdio.h>      // 包含 perror 声明
#include <stdlib.h>     // 包含 exit 函数
#include <sys/socket.h>
#include <unistd.h>     // 包含 close

#define error_check(ret) if(ret < 0) { perror("error"); exit(-1); }

namespace xy
{
Socket::Socket()
{
    _fd = socket(AF_INET, SOCK_STREAM, 0);
    error_check(_fd);
}

Socket::Socket(int fd)
    :_fd(fd){}

Socket::~Socket()
{
    close(_fd);
}

int Socket::get_fd() const
{
    return _fd;
}

void Socket::shutdown_write()
{
    shutdown(_fd, SHUT_WR);     // 主动断开连接时调用，只关闭写端
}

}

